package com.zhiche.lisa.bms.service.psup;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.zhiche.lisa.bms.dao.model.psup.PsupBaseData;
import com.zhiche.lisa.bms.pojo.vo.psup.PsupBaseDataVO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 人送供方基础信息维护 服务类
 * </p>
 *
 * @author linbao
 * @since 2019-06-18
 */
public interface PsupBaseDataService extends IService<PsupBaseData> {

    /**
     * 分页查询
     *
     * @param page
     * @return
     */
    Page<PsupBaseDataVO> querySdBaseDataInfoPage(Page<PsupBaseData> page);

    /**
     * 条件查询获取数据
     *
     * @param condition
     * @return
     */
    List<PsupBaseDataVO> querySdBaseDataInfoByCondition(Map<String, Object> condition);

    /**
     * 人送基础信息的新增
     *
     * @param psupBaseData
     */
    void createSdBaseDataInfo(PsupBaseData psupBaseData);

    /**
     * 针对excel导入数据批量信息
     *
     * @param psupBaseDataVOList
     * @return
     */
    List<String> batchImportExcelData(List<PsupBaseDataVO> psupBaseDataVOList, String token);

    /**
     * 人送基础信息的新增
     *
     * @param psupBaseData
     */
    void updateSdBaseDataInfo(PsupBaseData psupBaseData);

    /**
     * 批量审核人送基础信息
     *
     * @param idList
     */
    List<String> auditSdBaseDataInfo(List<Long> idList);

    /**
     * 批量删除
     *
     * @param idList
     */
    void deleteSdBaseDataInfo(List<Long> idList);

    /**
     * 规则有效期校验
     *
     * @param psupBaseData
     * @return true-不冲突, false-时间冲突
     */
    boolean verifyRuleClash(PsupBaseData psupBaseData);

    /**
     * 获取对应的人送基础信息 - 根据优先级
     *
     * @param psupBaseData
     * @return
     */
    List<PsupBaseData> querySdBaseDataInfoByOrderLevel(PsupBaseData psupBaseData);
}
